'\"macro stdmacro
.\"
.\" Copyright (c) 2019-2022 Red Hat.
.\"
.\" This program is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU General Public License as published by the
.\" Free Software Foundation; either version 2 of the License, or (at your
.\" option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
.\" or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
.\" for more details.
.\"
.\"
.TH PCPCOMPAT 1 "PCP" "Performance Co-Pilot"
.SH NAME
\f3PCPCompat\f1,
\f3pcp-collectl\f1,
\f3pmmgr\f1,
\f3pmwebd\f1 \- backward-compatibility in the Performance Co-Pilot (PCP)
.SH INTRODUCTION
The Performance Co-Pilot (PCP) is a toolkit designed for monitoring
and managing system-level performance.
These services are distributed and scalable
to accommodate the most complex system configurations and performance
problems.
.PP
In order to achieve these goals effectively, protocol and on-disk
compatibility is provided between different versions of PCP.
It is feasible (and indeed encouraged) to use current PCP tools to
interrogate any remote, down-rev or up-rev
.BR pmcd (1)
and also to replay any historical PCP archive (the PCP testsuite
includes PCP archives created over 20 years ago!).
.PP
From time to time the PCP developers deprecate and remove PCP utilities,
replacing them with new versions of utilities providing comparable features.
This page describes replacement utilities for historical PCP tools.
.SH PYTHON2
PCP provides
.BR python (1)
interfaces for the
.BR PMAPI (3)
(Performance Metrics API), the
.BR PMDA (3)
API (Performance Metrics Domain Agents), the
.BR mmv_stats_register (3)
API (Memory-Mapped Values) and PCP archive creation
.BR LOGIMPORT (3)
API.
.PP
With
.B python
version 2 reaching end-of-life in 2020 we have now removed all
support for this version (from PCP version 7 and later).
All PCP APIs and
.BR python -based
tools support
.B python
version 3 and have for several years \- upgrading is strongly
recommended.
.SH QT4
PCP provides optional graphical user interfaces built on the
cross-platform Qt library, particularly
.BR pmchart (1)
and
.BR pmtime (1).
.PP
With Qt v4 reaching end-of-life in 2015 we have removed support
for all versions before Qt v5.
In addition, some features are missing in early versions of Qt
v5 that are now mandatory when building and using PCP Qt tools.
As a result the minimum required version of Qt for PCP v6 and
beyond is now Qt 5.6.
.SH NSS
Versions of PCP before v6 used a combination of both Mozilla
NSS (Network Security Services) and OpenSSL for the encryption
component of the secure sockets functionality.
Starting with PCP v6 this has been simplified into exclusive
use of OpenSSL for all use of encryption across PCP.
This change affects configuration of optional functionality in
.BR pmcd (1)
and
.BR PMAPI (3)
client tools using secure sockets.
.PP
The net effect of this change is that encryption is configured
in the same ways, using the same certificates, across the HTTPS
functionality in
.BR pmproxy (1),
as well as the encrypted PCP protocol functionality between
.BR pmcd ,
.B pmproxy
and
.B PMAPI
client tools.
Additionally, the key-value server service used by
.BR pmseries (1)
and
.B pmproxy
also exclusively uses OpenSSL, and in a manner similar to PCP,
which makes administering these services significantly simpler.
.SH SAR2PCP, IOSTAT2PCP
The
.BR sar2pcp (1)
and
.BR iostat2pcp (1)
utilities are deprecated, and will be retired in a future version of
PCP (v7).
This is being replaced by native support for generating PCP archives
within the tools of the
.I sysstat
package (which provides
.B sar
itself, as well as the
.B sadf
utility which produces PCP archives via the
.B \-l
option).
.SH PMLOGCONF-SETUP
Earlier versions of PCP (prior to v5.1.1) provided a shell script that
was used internally by
.BR pmlogconf (1),
located in the
.B PCP_BINADM_DIR
directory, named
.BR pmlogconf-setup .
This script has been retired.
The equivalent functionality remains available in the unlikely event
it should be needed via the \fB\-s\fR or \fB\-\-setup\fR option to
.BR pmlogconf (1).
.PP
The version 1
.B pmlogconf-setup
configuration file format (from IRIX) was also retired in this release,
after more than 10 years of automatic transition to version 2 format by
.BR pmlogconf .
.SH PMMGR
The stand-alone PCP daemon manager
.B pmmgr
has been retired from PCP v5.2.0 onward.
It was phased out in favour of the simpler
.BR pmfind (1)
service for setting up
.BR pmie (1)
and
.BR pmlogger (1)
``farms'' of discovered PCP collector systems with
.BR pmfind_check (1).
The new mechanisms, especially when integrated with
.BR systemd ,
require no additional daemons and are better integrated with the
.BR pmie
and
.BR pmlogger
service management used elsewhere in PCP.
.SH PCP-COLLECTL
The
.B pcp-collectl
utility has been superseded by
.BR pmrep (1)
from PCP v5 onward.
.PP
The equivalent of
.B pcp-collectl
subsystem reporting is achieved as follows:
.TP
.B pmrep :collectl-sc
Processor subsystem view.
.TP
.B pmrep :collectl-sm
Memory subsystem view.
.TP
.B pmrep :collectl-sd
Aggregate disks view.
.TP
.B pmrep :collectl-sD
Per-disk-device view.
.TP
.B pmrep :collectl-dm-sD
Device mapper view.
.TP
.B pmrep :collectl-sn
Network subsystem view.
.SH PCP-WEBAPPS
The stand-alone web applications packaged with older PCP versions
have been superseded by
.BR grafana-server (1)
with the
.B grafana-pcp
plugin
.BR https://github.com/performancecopilot/grafana-pcp .
.PP
This plugin provides an implementation of the Vector application,
as well as data sources for
.BR pmdabpftrace "(1) ("\c
.BR bpftrace (8)
scripts) and
.BR pmseries (1)
(fast, scalable, distributed time series analysis).
.SH PMWEBD
The
.B pmwebd
daemon has been superseded by
.BR pmproxy (1)
from PCP v5 onward.
.PP
By default,
.B pmproxy
will now listen on both its original port (44322) and the PCP
web API port (44323) when the time series support is built.
.PP
.B pmproxy
provides a compatible implementation of the live
.BR PMWEBAPI (3)
interfaces used traditionally by the Vector web application
(see the ``PCP-WEBAPPS'' section).
It also provides extensions to the original
.B pmwebd
REST APIs (such as derived metrics, namespace lookups and instance
domain profiles), support for the HTTPS protocol, and fast, scalable
time series querying using the
.BR pmseries (1)
REST API with a distributed key-value server such as
.BR https://valkey.io/ .
.PP
The partial Graphite API emulation provided by
.B pmwebd
has not been re-implemented \- applications wishing to use similar
services could use the scalable time series REST APIs described on
.BR PMWEBAPI (3).
.SH SEE ALSO
.BR pcp (1),
.BR pmcd (1),
.BR iostat2pcp (1),
.BR sar2pcp (1),
.BR pmrep (1),
.BR pmfind (1),
.BR pmfind_check (1),
.BR pmlogconf (1),
.BR pmproxy (1),
.BR pmseries (1),
.BR pmdabpftrace (1),
.BR python (1),
.BR grafana-server (1),
.BR mmv_stats_register (3),
.BR LOGIMPORT (3),
.BR PMAPI (3),
.BR PMDA (3)
and
.BR PMWEBAPI (3).

.\" control lines for scripts/man-spell
.\" +ok+ COLLECTL IOSTAT IRIX NSS OpenSSL PCPCompat PMLOGCONF PMMGR
.\" +ok+ PMWEBD SAR WEBAPPS bpftrace dm github grafana
.\" +ok+ testsuite
.\" +ok+ mmv_stats_register pmmgr pmwebd
.\" +ok+ sD sc sd sm sn {from pmrep -args}

